startWorker() {
        const worker = new Worker(this.workerOptions);

        worker.on('ready', () => {
            this.emitReadyWorkersCount();
            this.pendingTasksQueue.forEach(() => this.processQueue());
        });
        worker.on('data', response => this.handleWorkerResponse(worker, response));
        worker.on('exit', () => this.handleWorkerExit(worker));

        this.workersQueue.enqueue(worker);

        return worker;
    }
Spawns and setups a new worker.

@private