def batch_predict(dataset, model_dir, output_csv=None, output_bq_table=None, cloud=None):
  """Blocking version of batch_predict_async(). The only difference is that it blocks the caller
     until the job finishes, and it does not have a return value.
  """
  with warnings.catch_warnings():
    warnings.simplefilter("ignore")
    job = batch_predict_async(dataset, model_dir, output_csv, output_bq_table, cloud)
    job.wait()
    print(job.state)