Using pandas, create a series from the list, drop duplicates, and then convert it back to a list.
import pandas as pd
>>> pd.Series(['Herb', 'Alec', 'Herb', 'Don']).drop_duplicates().tolist()
['Herb', 'Alec', 'Don']
Timings
Solution from @StefanPochmann is the clear winner for lists with high duplication.
my_list = ['Herb', 'Alec', 'Don'] * 10000
%timeit pd.Series(my_list).drop_duplicates().tolist()
# 100 loops, best of 3: 3.11 ms per loop
%timeit list(OrderedDict().fromkeys(my_list))
# 100 loops, best of 3: 16.1 ms per loop
%timeit sorted(set(my_list), key=my_list.index)
# 1000 loops, best of 3: 396 µs per loop
For larger lists with no duplication (e.g. simply a range of numbers), the pandas solution is very fast.
my_list = range(10000)
%timeit pd.Series(my_list).drop_duplicates().tolist()
# 100 loops, best of 3: 3.16 ms per loop
%timeit list(OrderedDict().fromkeys(my_list))
# 100 loops, best of 3: 10.8 ms per loop
%timeit sorted(set(my_list), key=my_list.index)
# 1 loop, best of 3: 716 ms per loop