def METHOD_NAME(self):
    """
    Returns the next example from this dataset after starting to queue up the next
    example.
    """
    ready = None
    # pull up the currently queued example
    if self.example is not None:
        if self.image_mode != 'no_image_model':
            # move the image we loaded in the background into the example
            image = self.data_queue.get()
            self.example['image'] = image
        ready = (self.example, self.epochDone)
    # get the next base example: super().next_example() calls self.get()
    self.example, self.epochDone = super().METHOD_NAME()
    if self.image_mode != 'no_image_model' and 'image_id' in self.example:
        # load the next image in the background
        image_id = self.example['image_id']
        self.submit_load_request(image_id)
    # Try to return the previously cached example
    if ready is None:
        return self.METHOD_NAME()
    else:
        return ready