code: def create_preprocessed_dataset(path_to_data, outputpath, preprocessing_queue):
      
      # Log everything
      logging.info("Data soure %s", path_to_data)
      logging.info("Output will be stored in %s", outputpath)
      tmp = "Preprocessing Queue:\n"
      for preprocessing_class in preprocessing_queue:
          tmp += str(preprocessing_class) + "\n"
      logging.info(tmp)
      # Load from pickled file
      if not os.path.isfile(path_to_data):
          logging.info(("'%s' does not exist. Please either abort this script "
                        "or update the data location."), path_to_data)
          raw_dataset_path = utils.choose_raw_dataset()
          # Get project-relative path
          raw_dataset_path = "raw-datasets" + \
                             raw_dataset_path.split("raw-datasets")[1]
          print(raw_dataset_path)
          sys.exit()  # TODO: Update model!
      logging.info("Start loading data...")
      loaded = pickle.load(open(path_to_data, "rb"))
      raw_datasets = loaded['handwriting_datasets']
      logging.info("Start applying preprocessing methods")
      start_time = time.time()
      for i, raw_dataset in enumerate(raw_datasets):
          if i % 10 == 0 and i > 0:
              utils.print_status(len(raw_datasets), i, start_time)
          # Do the work
          raw_dataset['handwriting'].preprocessing(preprocessing_queue)
      sys.stdout.write("\r%0.2f%% (done)\033[K\n" % (100))
      print("")
      pickle.dump({'handwriting_datasets': raw_datasets,
                   'formula_id2latex': loaded['formula_id2latex'],
                   'preprocessing_queue': preprocessing_queue},
                  open(outputpath, "wb"),
                  2)
docs: Create a preprocessed dataset file by applying `preprocessing_queue`
         to `path_to_data`. The result will be stored in `outputpath`.