Do not wait for client to connect to return.
Currently the client try to connect during init, which involves that core is waiting for that connection. That connection could be done in the run function (in a thread), with an option to cancel waiting for the job to start (an error may have occurred).