Start new scheduling primitive, such as thread, to accept new tasks via
Typically new worker may be needed for computations offload to another core, for IO it may be
better to use non-blocking IO combined with more lightweight coroutines.
errorReporting - controls if an uncaught exceptions in the worker will be reported.
name - defines the optional name of this worker, if none - default naming is used.
Return worker object, usable across multiple concurrent contexts.