`_getConnection` always creates and establishes a new connection. The way this currently works this means we unnecessary establish two connections in the child process when we really just need one.

I would change it to do something like this

1. Add a new `_setConnection` method which uses `_getConnection` and sets `_connection` attribute on the class
2. Modify this method to call `_setConnection` if `self._connection` is not set yet. If it's already set, just proceed with the next step
3. Pass `self._connection` to the callback as the second argument