'**Arguments:**
tasks            list of objects to be processed (Parallelize will determine how to
distribute the tasks). If unspecified, then each worker will receive
a single task with a unique id number.
workers          number of worker processes or None to use number of CPUs in the
system
progressDialog   optional dict of arguments for ProgressDialog
to update while tasks are processed
randomReseed     If True, each forked process will reseed its random number generator
to ensure independent results. Works with the built-in random
and numpy.random.
kwds             objects to be shared by proxy with child processes (they will
appear as attributes of the tasker)'

def __init__(self, tasks=None, workers=None, block=True, progressDialog=None, randomReseed=True, **kwds):

    self.showProgress = False
    if (progressDialog is not None):
        self.showProgress = True
        if isinstance(progressDialog, basestring):
            progressDialog = {'labelText': progressDialog}
        from ..widgets.ProgressDialog import ProgressDialog
        self.progressDlg = ProgressDialog(**progressDialog)
    if (workers is None):
        workers = self.suggestedWorkerCount()
    if (not hasattr(os, 'fork')):
        workers = 1
    self.workers = workers
    if (tasks is None):
        tasks = range(workers)
    self.tasks = list(tasks)
    self.reseed = randomReseed
    self.kwds = kwds.copy()
    self.kwds['_taskStarted'] = self._taskStarted
