Job which progress is to be updated
events triggered for this RDD (or its children) trigger progress change
which stages are supposed to change the progress bar %
One progress listener for each instance of model creation. Each listener gets all events so this particular one will respond only to the ones corresponding to a given RDD used for training (which should not be shared) and to a particular job type (depending on the algorithm).
It might not be 100% accurate depending on how many "non primary" jobs will be run.