backend: fix order of operation around forking

The backend class initiates the database connection in __init__ so
initing the backend class before we fork means the backend processes
will have one shared socket (sockets are shared across the processes)
between all the backend workers. This obviously isn't a good thing since
we need at least one database connection per backend to achieve some
parallelism. I'm sure there are other peculiarities that would steam
from sharing database connection.

By simply moving the init of the backend class to after the fork we
improve on this code. Still seeing weird issues on certain machines so
the forking code definitely isn't complete but it's getting there.