We propose a new approach of performing automatic run time program parallelization: divide a program into traces and execute these traces in parallel. We describe a framework that can automatically parallelize software using our approach. Our framework must collect, select, and schedule traces, as well as enforce dependencies. The framework consists of a baseline compiler, serial and parallel versions of a program, a trace collection system, and an optimizing and parallelizing compiler. We also report on our work in progress: trying to determine the minimum overhead of dependencies, and separating the traces from the rest of the program.