O problema é que um processo bifurcado herda alguns dos recursos de seu pai, como seus descritores de arquivo. Em particular, um desses recursos compartilhados é a conexão MySQL. Quando o processo filho termina seu envio de e-mail e sai, ele fecha a conexão MySQL, que fecha a conexão dos processos pai.
Se você continuar nesse caminho (e é repleto de sutilezas semelhantes), precisará fazer algo assim:
# Clear existing connections before forking to ensure they do not get inherited.
::ActiveRecord::Base.clear_all_connections!
fork do
# Establish a new connection for each fork.
::ActiveRecord::Base.establish_connection
# The rest of the code for each fork...
end
Você terá que fazer algo semelhante com serviços como memcached ou mongodb se os usar.