code: def preprocess(train_dataset, output_dir, eval_dataset=None, checkpoint=None, cloud=None):
    
    with warnings.catch_warnings():
      warnings.simplefilter("ignore")
      job = preprocess_async(train_dataset, output_dir, eval_dataset, checkpoint, cloud)
      job.wait()
      print(job.state)
docs: Blocking version of preprocess_async(). The only difference is that it blocks the caller
       until the job finishes, and it does not have a return value.