I am also wondering this issue. I adjusted a few lines for my case (I wanna first process csv, and then this list should be a Tabular Dataset).
class TabularDataset_From_List(data.Dataset):
    def __init__(self, data_path, fields, skip_header=False, **kwargs):
        data_frame = pd.read_csv(data_path)
        print(data_frame.columns)

        examples = []
        for i, row in data_frame.iterrows():
            label = row.label
            rawtext = row.rawtext
            rawtext = some_processes(rawtext)

            examples.append(data.Example.fromlist([rawtext, label], fields))

        super(TabularDataset_From_List, self).__init__(examples, fields, **kwargs)

    @classmethod
    def splits(cls, path=None, train=None, validation=None, test=None, **kwargs):
        if path is None:
            assert "Path is None !!!"
        train_data = None if train is None else cls(
            os.path.join(path, train), **kwargs)
        val_data = None if validation is None else cls(
            os.path.join(path, validation), **kwargs)
        test_data = None if test is None else cls(
            os.path.join(path, test), **kwargs)
        return tuple(d for d in (train_data, val_data, test_data)
                     if d is not None)

However, Dataset cannot read rawtext (primary data), but just read label.
# Main function
train_dataset, val_dataset = TabularDataset_From_List.splits(path=data_folder,
                                                                         train=data_train_file,
                                                                         validation=data_val_file,
                                                                         fields=[
                                                                             ('id', None),
                                                                             ('label',
                                                                              data.Field(use_vocab=False,
                                                                                         sequential=False)),
                                                                             ('text', None),
                                                                             ('rawtext', self.textfield),
                                                                         ])

print(train_dataset.examples[0].__dict__.keys())
# out: dict_keys(['label'])