Improve the redis lock so it returns the task id (pass it into the arguments).
The lock should only be executed when a predictor is being trained, not before creating it.
It should chain the tasks (if in the second iteration, the predictor is being trained by a previous iteration, then chain it before that training task).
See:
#18 (comment)
#18 (comment)