Add callbacks method to the trainer which are called when the loop starts and when skipping steps ends
### Feature request

Add callbacks method in the training loop when the loop starts and when the steps skipping end.

### Motivation

When using an iterable dataset, all preprocessing is done on the fly when a batch is requested by the dataloader. As a result, when resuming training from a checkpoint, steps skipping can be extremely long because all the preprocessing steps are done for nothing.

If we have callback(s) that signal when the step skipping starts and ends, we could for instance set an environment variable that we can use in all our processing to signal to not do anything with the current batch.

The callback on_step_begin is only called once the first useful batch is loaded, it is then too late to signal to actually perform the processings.

I'm also open to propostions if you know another way of rapidly skipping batches when using an iterable dataset

### Your contribution

I could contribute to a PR if needed
cc @sgugger <|||||>It sounds like an interesting addition, but the callbacks don't have access to the training dataset, so I'm not sure how you would use that for your use case.<|||||>This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the [contributing guidelines](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md) are likely to be ignored.