Starts a new job and returns a JobExecution.
Starts a new job and returns a JobExecution. The JobExecution.result future must be completed when the job execution is finished.
This method (run) should not "block", all the work must be performed
by the returned JobExecution.
Base class for jobs, job execution is started via
run(). For actor jobs you can just use theActorJob.