docstr: For distributed training we need to set the datasets video sampler epoch so
  that shuffling is done correctly
code: def on_train_epoch_start(self):
      """
      For distributed training we need to set the datasets video sampler epoch so
      that shuffling is done correctly
      """
      epoch = self.trainer.current_epoch
      if self.trainer.use_ddp:
          self.trainer.datamodule.train_dataset.dataset.video_sampler.set_epoch(
              epoch
          )
  
imports: import argparse
  import itertools
  import logging
  import os
  import pytorch_lightning
  import pytorchvideo.data
  import pytorchvideo.models.resnet
  import torch
  import torch.nn.functional
  from pytorch_lightning.callbacks import LearningRateMonitor
  from pytorchvideo.transforms import ApplyTransformToKey, Normalize, RandomShortSideScale, RemoveKey, ShortSideScale, UniformTemporalSubsample
  from slurm import copy_and_run_with_config
  from torch.utils.data import DistributedSampler, RandomSampler
  from torchaudio.transforms import MelSpectrogram, Resample
  from torchvision.transforms import CenterCrop, Compose, Lambda, RandomCrop, RandomHorizontalFlip
label_desc: Use image node_id 2 for calling the VideoClassificationLightningModule obj's underlying member method code with example usage: obj.on_train_epoch_start() without return types